Formulare definieren
Allgemeines zu Formularen
Formular definieren
HTML stellt die Möglichkeit zur Verfügung, mit Hilfe spezieller Befehle Formulare zu erstellen. In Formularen kann der Anwender Eingabefelder ausfüllen, in mehrzeiligen Textfeldern Text eingeben, aus Listen Einträge auswählen und Buttons anklicken. Wenn das Formular fertig ausgefüllt ist, kann der Anwender auf einen Button klicken, um das Formular abzusenden.
Dazu geben Sie beim Erstellen eines Formulars an, was mit den Daten des ausgefüllten Formulars passieren soll. Sie können sich die ausgefüllten Daten besipielsweise per E-Mail zuschicken lassen oder von einem CGI-Programm auf dem Server-Rechner weiterverarbeiten lassen.
Formulare können sehr unterschiedliche Aufgaben haben. So werden sie zum Beispiel eingesetzt:
- um bestimmte, gleichartig strukturierte Auskünfte von Anwendern einzuholen,
- um Anwendern das Suchen in Datenbanken zu ermöglichen,
- um Anwendern die Möglichkeit zu geben, selbst Daten für eine Datenbank beizusteuern,
- um dem Anwender die Möglichkeit individueller Interaktion zu bieten, etwa um aus einer Produktpalette etwas Bestimmtes zu bestellen.
Ein Software-Hersteller könnte z.B. ein Formular zur Verfügung stellen, in dem der Anwender angeben kann, welche Produkte der Firma er besitzt, wie er Kenntnis von den Produkten erhalten hat, welchen Beruf er ausübt, auf welchem Rechnertyp die Software bei ihm läuft usw. Auf diese Weise könnte er gleichartig strukturiertes und daher gut vergleichbares Feedback von Anwendern einholen.
Viele Suchdienste im Internet bieten dem aufrufenden WWW-Browser in HTML geschriebene Eingabe-Formulare an, in denen der Anwender seinen Suchwunsch spezifizieren kann. Ohne solche Formulare wäre das Durchsuchen gar nicht möglich. Die meisten Suchdienste bieten darüber hinaus auch die Möglichkeit an, eigene Internet-Adressen in die Datenbank einzuspeisen. Das Einholen der dazu nötigen Information geschieht ebenfalls mit Hilfe von Formularen.
Immer zahlreicher werden auch die Bestell-Services im Internet. Egal ob Tickets, Pizza oder Unterwäsche - um solche Bestell-Services zu realisieren, sind Formulare erforderlich, in denen der Anwender seine Bestellwünsche genau angeben kann.
Wenn Sie dem Anwender auf Ihren WWW-Seiten einfach nur eine Möglichkeit anbieten wollen, direkt mit Ihnen in Kontakt zu treten, genügt allerdings auch ein einfacher
E-Mail-Verweis an die eigene Email-Adresse.
![Beispiel](/file/18043/Web It! - Die Internet Clipart Sammlung - Volume 1.iso/Bonus/SelfHTML/xview.gif)
Anzeigebeispiel: So sieht's aus
<form action="mailto:muenz@compuserve.com" method=post enctype="text/plain">
... Elemente des Formulars wie Eingabefelder, Auswahllisten, Buttons usw. ...
</form>
|
<form action="../cgi-bin/suche.pl" method=get>
... Elemente des Formulars wie Eingabefelder, Auswahllisten, Buttons usw. ...
</form>
|
Erläuterung:
Mit <form ...> definieren Sie ein Formular (form = Formular). Alles, was zwischen diesem einleitenden Tag und dem abschließenden Tag </form> steht, gehört zum Formular. Das sind hauptsächlich Elemente des Formulars wie Eingabefelder, Auswahllisten oder Buttons. Um die Elemente zu plazieren, brauchen Sie jedoch auch
Textabsätze (Absatzschaltungen) und
erzwungene Zeilenumbrüche. Darüber hinaus können Sie zwischen <form...> und </form> auch Text eingeben und diesen Text wie üblich mit HTML-Befehlen formatieren. Auch Grafiken, Verweise, Tabellen, Multimedia-Elemente sind mitten im Formular erlaubt. So können Sie Ihr Formular optisch aufwerten und mit erklärendem Text usw. versehen.
Im einleitenden <form>-Tag geben Sie mit action= an, was mit den ausgefüllten Formulardaten passieren soll, wenn der Anwender das Formular abschickt (action = Aktion). Die Angabe sollte in Anführungszeichen stehen.
Die Angabe bei action= ist entweder eine E-Mail-Adresse (normalerweise Ihre eigene) mit vorangestelltem mailto: - so wie im ersten der obigen Beispiele (mailto = sende an). Dann werden die ausgefüllten Formulardaten an diese E-Mail-Adresse geschickt.
Oder Sie rufen ein CGI-Programm auf, das die Daten weiterverarbeitet - so wie im zweiten der obigen Beispiele. Bei der Adressierung des CGI-Programms gelten die gleichen Regeln wie bei
Verweisen.
Weitere Hinweise hierzu in den Abschnitten
Formulare als E-Mail und
Formulare und CGI.
Allgemeines zum Thema CGI finden Sie außerdem im Abschnitt
CGI: Server-Datenspeicherung und dynamisches HTML. Und schließlich enthält dieses Dokument eine einführende
Dokumentation: CGI/Perl.
Bei der Formulardefinition müssen Sie als nächstes die Übertragungsmethode angeben. Dabei gibt es zwei Möglichkeiten:
- Wenn Sie method=get wählen, werden die Daten des ausgefüllten Formulars auf WWW-Servern mit installiertem HTTP-Protokoll in der Standard-Umgebungsvariablen QUERY_STRING gespeichert (method = Methode, get = bekommen). Das CGI-Programm muß den Inhalt dieser Umgebungsvariablen auslesen und verarbeiten.
- Wenn Sie method=post wählen, werden die Daten des augefüllten Formulars auf dem Server-Rechner von "stdin" zur Verfügung gestellt, und das CGI-Programm muß sie behandeln wie eine Benutzereingabe, die auf der Kommandozeile gemacht wurde (post = verschicken). Da in diesem Fall kein EndOfFile-Signal (EOF) gesendet wird, muß das CGI-Programm die Standard-Umgebungsvariable CONTENT_LENGTH auslesen, um die Länge der übermittelten Daten und damit deren Ende zu ermitteln.
Wenn Sie sich Formulardaten per E-Mail zuschicken lassen, benutzen Sie immer method=post. Außerdem sollten Sie bei E-Mail-Empfang von Formulardaten immer die Angabe enctype="text/plain" mit angeben. Denn Formulardaten sind normalerweise nach einem bestimmten Schema formatiert, das für auswertende Programme recht gut geeignet ist, aber für Menschen keine Freude zu lesen ist. Mit der enctype-Angabe erhalten Sie zumindest von Anwendern, die Ihr Formular mit einem modernen WWW-Browser wie Netscape ausfüllen, ordentlich formatierte E-Mails.
Beachten Sie:
Mit Hilfe von
JavaScript können Sie Eingaben in Formularen steuern und kontrollieren. Bereits im einleitenden <form>-Tag ist der JavaScript-
Event-Handler onSubmit= erlaubt.
© 1997
Stefan Münz, muenz@compuserve.com